星巡研究院

渗透视角下的C语言

### 8.1.1 干什么 `netinet/in.h` 定义 IPv4 套接字地址结构与字节序转换宏。它规定 `sockaddr_in`(socket address Internet,供 `connect`/`bind` 使用的 IPv4 地址容器)的内存布局,并提供主机字节序与网络字节序之间的转换手段。 它的职责边界是这样的。只在用户态填充结构、翻转字节,本身不发起任何系统调用,也不参与实际收发。真正使用这些结构的是第 3 章 `sys/socket.h` 声明的 `connect`、`bind` 等调用,由内核协议栈读取结构内容。主机名到地址的文本换算由 `arpa/inet.h` 与 `netdb.h` 分担,不在本库展开。 字节序(byte order,多字节整数在内存或链路上的排列方向)在此必须区分两个概念:主机字节序是当前 CPU 存放整数的方向,x86-64 为小端(低位字节存低地址)。网络字节序(network byte order,网络协议统一规定的大端顺序,高位字节先传输)是结构内端口与地址必须采用的方向。端口与 32 位地址填入结构前必须转成网络字节序。
这是进阶内容

升级理论包获取本册全部章节,从机器本质系统入门